package com.stu.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.stu.entity.Book;
import com.stu.service.Bookservice;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @author wzm
 * @create 2023-03-01 10:42
 */

@RestController
@RequestMapping("/books")
public class BookController {
    @Autowired
    private Bookservice bookservice;
    /*因为浏览器请求服务器通常有很多种请求方式
    我们访问都是访问localhost/books 地址 会根据请求方式自动执行
    以下注解对应的方法
    * get请求  查询数据  根据有没有参数来区分多种查询
    * post请求 新增数据
    * put请求 修改数据
    * delete请求 删除数据
    * RestFul风格的请求方式
    * */
    @GetMapping
    public List<Book> getAll(){
        //调用Service获取结果

    return bookservice.getAll();
    }

    //@PathVariable表示参数是路径中带过来的并且站位
    @GetMapping("{id}")
    public Book getById(@PathVariable Integer id){
        return bookservice.getById(id);
    }



    @DeleteMapping("{id}")
    public Boolean delete(@PathVariable Integer id){
        return bookservice.delete(id);
    }

    @PostMapping
    public Boolean save(@RequestBody Book book){
        return bookservice.save(book);
    }
    @PutMapping
    public Boolean update(@RequestBody Book book){
        return bookservice.update(book);
    }
//
//    @GetMapping("{currentPage}/{pageSize}")
//    public IPage<Book> getPage(@PathVariable int currentPage,@PathVariable int pageSize){
//        return bookservice.getPage(currentPage,pageSize);
//    }

//    待条件的分页查询
@GetMapping("{currentPage}/{pageSize}")
public IPage<Book> getPage(@PathVariable int currentPage,@PathVariable int pageSize,Book book){

        return bookservice.getPage1(currentPage,pageSize,book);
}


}
